#ifndef FOLDER_H
#define FOLDER_H

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>
#include <vector>

#include "Ogre.h"
#include "file.h"

using namespace std;

class Folder {
	public :
		DIR *rep;
		struct dirent *element;
		char *name;
		int prof;
		long size;
		int fileCount;
		int repCount;
		int objCount;
		bool estTerminal;
		bool queDesFilsTerminaux;
		vector<Folder*> *subfolders;
		vector<File*> *files;
		//time_t creat_date;
		//time_t modif_date;

		Folder(char* nomRep, int p);
		char* getNom();
		long getSize();
		// vector<Folder*> getSubfolders();
		vector<File*> getFiles();
		File* getFileNo(size_t i);
		Folder* getFolderNo(size_t i);
		int getProfondeur();
		int getProfMax();
		
		vector<File*> getLeftFiles();
		vector<File*> getRightFiles();
		vector<Folder*> getOrderedSubfolders();		
	
		//void addSubfolder(Folder *f);
		//void addFile(File *f);
		int getNbObjets();
		int getNbObjetsMax();
		~Folder();
};

#endif

// type de fichier d_type : DT_REG (fichier) ou DT_DIR (répertoire)
// autre possibilité : S_ISDIR sur le champ st_mode
